<?php

$this->PhpExcel->Excel();
if ($tipoReporte == 1) {
    $this->PhpExcel->titulo_reporte("EXISTENCIAS A LA FECHA", "EXISTENCIAS A LA FECHA");
    $this->PhpExcel->titulo_hoja("EXISTENCIAS FECHA");

    $listadoReporte = array('normal' => 'Normal', 'detallado' => 'Detallado');
    $ext = ($formato == 1) ? 'xlsx' : 'ods';
    $nombre = "LISTADO_EXISTENCIAS_FECHAS" . date("d_m_Y");

    $this->PhpExcel->hoja->getDefaultStyle()->applyFromArray(array('font' => array('name' => 'arial', 'size' => 10)));
    $this->PhpExcel->hoja->getStyle('A1')->applyFromArray(array('font' => array('bold' => true, 'size' => 12, 'color' => array('rgb' => '8B0000'))));
    $this->PhpExcel->hoja->getStyle('A2')->applyFromArray(array('font' => array('bold' => true, 'size' => 11)));
    $this->PhpExcel->hoja->getStyle('A3')->applyFromArray(array('font' => array('bold' => false, 'size' => 10)));
    $this->PhpExcel->hoja->getStyle('A4')->applyFromArray(array('font' => array('bold' => false, 'size' => 10)));

    $arrStyleTitle = array('fill' => array('type' => PHPExcel_Style_Fill::FILL_SOLID,
            'startcolor' => array('rgb' => '81DAF5')),
        'font' => array('bold' => true, 'color' => array('rgb' => PHPExcel_Style_Color::COLOR_WHITE)),
        'alignment' => array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER));

    $arrStyleTitleuno = array('fill' => array('type' => PHPExcel_Style_Fill::FILL_SOLID,
            'startcolor' => array('rgb' => 'EFFBFB')));

    $arrborderTitleuno = array('style' => PHPExcel_Style_Border::BORDER_DASHDOT, 'color' => array('rgb' => '000000'));

    $this->PhpExcel->configura_celda('A', 5); //#
    $this->PhpExcel->configura_celda('B', 30); //AGENCIA
    $this->PhpExcel->configura_celda('C', 20); //CODIGO MAT.
    $this->PhpExcel->configura_celda('D', 30); //CLASIFICACION
    $this->PhpExcel->configura_celda('E', 30); //SUBCLASIFICACION
    $this->PhpExcel->configura_celda('F', 40); //NOMBRE
    $this->PhpExcel->configura_celda('G', 15); //Stock Inicial
    $this->PhpExcel->configura_celda('H', 15); //Stock Fecha
    $this->PhpExcel->configura_celda('I', 15); //bLOQUEOS A LA 
    $this->PhpExcel->configura_celda('J', 15); //Disponoble a la Fecha
    $index_title = 6;
    $index_detail = 0;
    $oac = $this->PhpExcel->xls->getActiveSheet();
    $oac->setAutoFilter('A6:J6'); // AUTO FILTER
    $j = 0;
    //$tit = array('#','AGENCIA','FECHA','FECHA CONTABLE','DOCUMENTO','TIPO MOV.','CODIGO MAT.','NOMBRE MAT.','CANT MOV.');
    $tit[] = array('#', 'STR', 'C');
    $tit[] = array('AGENCIA', 'STR', 'C');
    $tit[] = array('CODIGO MAT.', 'STR', 'C');
    $tit[] = array('CLASIFICACION', 'STR', 'C');
    $tit[] = array('SUBCLASIFICACION', 'STR', 'C');
    $tit[] = array('NOMBRE', 'STR', 'C');
    $tit[] = array('STOCK INICIAL', 'STR', 'C');
    $tit[] = array('STOCK FECHA', 'STR', 'C');
    $tit[] = array('BLOQUEOS', 'STR', 'C');
    $tit[] = array('DISPONIBLES', 'STR', 'C');


    $con = 1;
    foreach ($tit as $columnTitle) {
        $this->PhpExcel->valor_celda($j, $index_title, $columnTitle);
        $oColumn = $this->PhpExcel->obtener_columna($j, $index_title);
        $oRow = $this->PhpExcel->obtener_fila($j, $index_title);
        $this->PhpExcel->hoja->getStyle($oColumn . $oRow)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $this->PhpExcel->hoja->getStyle($oColumn . $oRow)->applyFromArray($arrStyleTitle);
        $this->PhpExcel->hoja->getStyle($oColumn . $oRow)->getBorders()->getAllBorders()->applyFromArray($arrborderTitleuno);
        $j++;
    }

    $fila = 7;

    foreach ($id_tiendas as $contenido) {
        $nombreTienda = $this->Interfaz->mayuscula($tienda_oculta[$contenido]);
        foreach ($data[$contenido] as  $dato) {            
            $valores = array();
            $valores[] = array(($con), 'STR', 'C');
            $valores[] = array($nombreTienda, 'STR', 'L');
            $valores[] = array($dato['codigo'], 'STR', 'C');
            $valores[] = array($this->Interfaz->mayuscula($dato['clasificacion']), 'STR', 'L');
            $valores[] = array($this->Interfaz->mayuscula($dato['subclasificacion']), 'STR', 'L');            
            $valores[] = array($this->Interfaz->mayuscula($dato['nombre']), 'STR', 'L');
            $valores[] = array($dato['inicial'], 'N', 'R');
            $valores[] = array($dato['fecha'], 'N', 'R');
            $valores[] = array($dato['bloqueos'], 'N', 'R');
            $valores[] = array(($dato['inicial'] + $dato['fecha'] + $dato['bloqueos']), 'N', 'R');
            $columna = 0;

            foreach ($valores as $valor) {
                $this->PhpExcel->valor_celda($columna, $fila, $valor);
                $oColumn = $this->PhpExcel->obtener_columna($columna, $fila);
                $oRow = $this->PhpExcel->obtener_fila($columna, $fila);
                if ($fila % 2 == 0) {
                    $this->PhpExcel->hoja->getStyle($oColumn . $oRow)->applyFromArray($arrStyleTitleuno);
                } else {
                    //$this->PhpExcel->hoja->getStyle($oColumn.$oRow)->applyFromArray($arrStyleTitleuno);
                }
                $this->PhpExcel->hoja->getStyle($oColumn . $oRow)->getBorders()->getAllBorders()->applyFromArray($arrborderTitleuno);
                $columna++;
            }
            $fila++;
            $con++;
        }
    }
} else {
    $ext = ($formato == 1) ? 'xlsx' : 'ods';
    $arrStyleTitleuno = array('fill' => array('type' => PHPExcel_Style_Fill::FILL_SOLID,
            'startcolor' => array('rgb' => 'EFFBFB')));
    $arrborderTitleuno = array('style' => PHPExcel_Style_Border::BORDER_DASHDOT, 'color' => array('rgb' => '000000'));
    $nombre = "LISTADO_EXISTENCIAS_FECHAS" . date("d_m_Y");
    $tit = array('#', 'AGENCIA', 'CODIGO MAT.', 'CLASIFICACION', 'SUBCLASIFICACION', 'NOMBRE', 'STOCK INICIAL', 'STOCK FECHA', 'BLOQUEOS', 'DISPONIBLES');
    $k = 0;
    foreach ($id_tiendas as $celda) {
        $con = 1;
        if ($k > 0) {
            $this->PhpExcel->xls->createSheet();
        }
        $this->PhpExcel->xls->setActiveSheetIndex($k);
        $oac = $this->PhpExcel->xls->getActiveSheet();
        $oac->setTitle($tienda_codigos[$celda]);
        $oac->getDefaultStyle()->applyFromArray(array('font' => array('name' => 'arial', 'size' => 10)));
        $oac->getStyle('A1')->applyFromArray(array('font' => array('bold' => true, 'size' => 12, 'color' => array('rgb' => '8B0000'))));
        $oac->getStyle('A2')->applyFromArray(array('font' => array('bold' => true, 'size' => 11)));
        $oac->getStyle('A3')->applyFromArray(array('font' => array('bold' => false, 'size' => 10)));
        $oac->getStyle('A4')->applyFromArray(array('font' => array('bold' => false, 'size' => 10)));
        $oac->setCellValue('A1', "AGROPATRIA - PUNTO DE VENTA");
        $oac->setCellValue('A2', $this->Interfaz->mayus("LISTADO_MOVIMIENTOS_INVENTARIO") . ' TIENDA ' . $this->Interfaz->mayus($tienda_codigos[$celda]));
        $oac->setCellValue('A3', "Fecha: " . date("d-m-Y"));
        $oac->setCellValue('A4', "Hora: " . date("h:i"));

        $oac->getColumnDimension('A')->setWidth(5); //#
        $oac->getColumnDimension('B')->setWidth(30); //AGENCIA
        $oac->getColumnDimension('C')->setWidth(20); //CODIGO MAT.
        $oac->getColumnDimension('D')->setWidth(30); //CLASIFICACION
        $oac->getColumnDimension('E')->setWidth(30); //SUBCLASIFICACION
        $oac->getColumnDimension('F')->setWidth(40); //NOMBRE
        $oac->getColumnDimension('G')->setWidth(15); //Stock Inicial
        $oac->getColumnDimension('H')->setWidth(15); //Stock Fecha
        $oac->getColumnDimension('I')->setWidth(15); //Bloqueos A LA Fecha
        $oac->getColumnDimension('J')->setWidth(15); //Disponoble a la Fecha        
        $oac->setAutoFilter('A6:J6'); // AUTO FILTER
        $index_title = 6;
        $index_detail = 0;
        $j = 0;
        foreach ($tit as $columnTitle) {
            @$oac->getCellByColumnAndRow($j, $index_title)->setValueExplicit($columnTitle, PHPExcel_Cell_DataType::TYPE_STRING);
            $oC = $oac->getCellByColumnAndRow($j, $index_title)->getColumn();
            $oR = $oac->getCellByColumnAndRow($j, $index_title)->getRow();
            $oac->getStyle($oC . $oR)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
            $oac->getStyle($oC . $oR)->applyFromArray($arrStyleTitleuno);
            $oac->getStyle($oC . $oR)->getBorders()->getAllBorders()->applyFromArray($arrborderTitleuno);
            $j++;
        }
        $fila = 7;
        $num = 1;

        //for ($y = 0; $y < count($data[$celda]); $y++) {
        $nombreTienda = $this->Interfaz->mayuscula($tienda_oculta[$celda]);
        foreach ($data[$celda] as  $dato) { 
           
            $valores = array();
            $valores[] = array(($con), 'STR', 'C');
            $valores[] = array($nombreTienda, 'STR', 'L');
            $valores[] = array($dato['codigo'], 'STR', 'C');
            $valores[] = array($this->Interfaz->mayuscula($dato['clasificacion']), 'STR', 'L');
            $valores[] = array($this->Interfaz->mayuscula($dato['subclasificacion']), 'STR', 'L');            
            $valores[] = array($this->Interfaz->mayuscula($dato['nombre']), 'STR', 'L');
            $valores[] = array($dato['inicial'], 'N', 'R');
            $valores[] = array($dato['fecha'], 'N', 'R');
            $valores[] = array($dato['bloqueos'], 'N', 'R');
            $valores[] = array(($dato['inicial'] + $dato['fecha'] + $dato['bloqueos']), 'N', 'R');
            $columna = 0;

            foreach ($valores as $valor) {
                $oC = $oac->getCellByColumnAndRow($columna, $fila)->getColumn();
                $oR = $oac->getCellByColumnAndRow($columna, $fila)->getRow();
                if ($valor[1] == 'STR'){
                    $oac->getCellByColumnAndRow($columna, $fila)->setValueExplicit($valor[0], PHPExcel_Cell_DataType::TYPE_STRING);
                }else{
                    $oac->getCellByColumnAndRow($columna, $fila)->setValueExplicit($valor[0], PHPExcel_Cell_DataType::TYPE_NUMERIC);
                    $oac->getStyle($oC.$oR)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1);
                }
                

                if ($valor[2] == 'L')
                    $oac->getStyle($oC . $oR)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
                else if ($valor[2] == 'C')
                    $oac->getStyle($oC . $oR)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
                else
                    $oac->getStyle($oC . $oR)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);

                if ($fila % 2 == 0) {
                    $oac->getStyle($oC . $oR)->applyFromArray($arrStyleTitleuno);
                }
                $oac->getStyle($oC . $oR)->getBorders()->getAllBorders()->applyFromArray($arrborderTitleuno);
                $columna++;
            }
            $fila++;
            $num++;
            $valores = null;
            $con++;
        }

        $k++;
    }
    $this->PhpExcel->xls->setActiveSheetIndex(0);
}
$this->PhpExcel->mostrar($nombre, $ext);
?>
